import XLSX from 'xlsx';

export default {
    methods: {
        // 获取Excel文件内容
        readExcelFile(file, opts = {}) {
            return new Promise((resolve, reject) => {
                const fileReader = new FileReader();
                fileReader.onload = event => {
                    try {
                        const { result } = event.target;
                        // 以二进制流方式读取得到整份Excel表格对象
                        const workbook = XLSX.read(result, {type: 'binary'});
                        let data = [];
                        const sheetName = workbook.SheetNames[0];
                        const firstSheet = workbook.Sheets[sheetName];
                        if (sheetName && firstSheet) {
                            data = data.concat(XLSX.utils.sheet_to_json(firstSheet, opts));
                        }
                        // 遍历每张工作表进行读取（这里默认只读取第一张表）
                        // for (const sheet  in workbook.Sheets) {
                        //     if (workbook.Sheets.hasOwnProperty(sheet)) {
                        //         // 利用 sheet_to_json 方法将Excel转换成json数据
                        //         data = data.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet], opts));
                        //         break; // 如果只读取第一张表，就取消这行注释
                        //     }
                        // }
                        resolve(data);
                    } catch (e) {
                        reject('file read error');
                    }
                };
                // 以二进制方式打开
                fileReader.readAsBinaryString(file);
            });
        },
    },
}
